package com.xjy.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xjy.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;


/**
 * 资金账户变更明细信息视图对象 sys_fundaccountdetail
 *
 * @author xjy
 * @date 2022-03-10
 */
@Data
@ApiModel("资金账户变更明细信息视图对象")
public class SysFundaccountdetailVo {

	private static final long serialVersionUID = 1L;

	/** ID */
	@ApiModelProperty("ID")
	private Long id;

	/** 关联项目 */
//	@Excel(name = "关联项目")
	@ApiModelProperty("关联项目")
	private Long projId;

	/** 关联合同，可能为空 */
//	@Excel(name = "关联合同，可能为空")
	@ApiModelProperty("关联合同，可能为空")
	private Long contractId;

	/** 项目名称 */
	@Excel(name = "项目名称")
	@ApiModelProperty("项目名称")
	private String projName;

	/** 关联合同结算项目，可能为空 */
//	@Excel(name = "关联合同结算项目，可能为空")
	@ApiModelProperty("关联合同结算项目，可能为空")
	private Long settleProj;

	/** 关联预算科目，可能为空 */
//	@Excel(name = "关联预算科目，可能为空")
	@ApiModelProperty("关联预算科目，可能为空")
	private Long subjectId;

	/**
	 * 合同名称
	 */
	@Excel(name = "合同名称")
	@ApiModelProperty("合同名称")
	private String contractName;

	/**
	 * 账户ID
	 */
//	@Excel(name = "账户ID")
	@ApiModelProperty("账户ID")
	private Long accId;


	/**
	 * 结算项目名称
	 */
	@Excel(name = "结算项目")
	@ApiModelProperty("结算项目名称")
	private String settleProjName;

	/**
	 * 科目名称
	 */
	@Excel(name = "预算科目")
	@ApiModelProperty("科目名称")
	private String subjectName;


	/**
	 * 资金变更流水号
	 */
	@Excel(name = "资金变更流水号")
	@ApiModelProperty("资金变更流水号")
	private String transactionId;

	/**
	 * 交易发出方
	 */
	@Excel(name = "交易发出方")
	@ApiModelProperty("交易发出方")
	private String sender;

	/**
	 * 交易发出方ID
	 */
//	@Excel(name = "交易发出方ID")
	@ApiModelProperty("交易发出方ID")
	private Long senderId;

	/**
	 * 交易接收方ID
	 */
	@Excel(name = "交易接收方ID")
	@ApiModelProperty("交易接收方ID")
	private Long receiveId;

	/**
	 * 交易接收方
	 */
	@Excel(name = "交易接收方")
	@ApiModelProperty("交易接收方")
	private String receive;

	/**
	 * 经办人ID
	 */
	@ApiModelProperty("经办人ID")
	private Long managerId;

	/**
	 * 经办人
	 */
	@Excel(name = "经办人")
	@ApiModelProperty("经办人")
	private String manager;

	/**
	 * 0：收入(+)，1：支出(-)
	 */
	@Excel(name = "收支类型", readConverterExp = "0=收入,1=支出")
	@ApiModelProperty("0：收入(+)，1：支出(-)")
	private Long category;

	/**
	 * 交易类型 0：收取押金、1：支付押金、2：预付账款、3：个人借款、4：支付报销、5：冲销借款，6：冲销预付，7：账户收款、8：其它
	 */
	@Excel(name = "交易类型", readConverterExp = "0=收取押金,1=支付押金,2=预付账款,3=个人借款,4=支付报销,5=冲销借款,6=冲销预付,7=账户收款,8=其它")
	@ApiModelProperty("交易类型 0：收取押金、1：支付押金、2：预付账款、3：个人借款、4：支付报销、5：冲销借款，6：冲销预付，7：账户收款、8：其它")
	private Long transactionCategory;

	/**
	 * 账户交易日期
	 */
	@Excel(name = "交易日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("账户交易日期")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date transactionDate;

	/**
	 * 账户交易前金额
	 */
	@Excel(name = "交易前金额(元)")
	@ApiModelProperty("账户交易前金额(元)")
	private BigDecimal beiginbalance;


	/**
	 * 账户交易发生金额
	 */
	@Excel(name = "交易金额(元)")
	@ApiModelProperty("账户交易发生金额(元)")
	private BigDecimal amount;

	/**
	 * 账户交易后余额
	 */
	@Excel(name = "交易后余额(元)")
	@ApiModelProperty("账户交易后余额(元)")
	private BigDecimal endbalance;

	/**
	 * 账户名称
	 */
	@Excel(name = "账户名称")
	@ApiModelProperty("账户名称")
	private String accountName;


	/**
	 * 账户开户行
	 */
	@Excel(name = "账户开户行")
	@ApiModelProperty("账户开户行")
	private String accountBank;


	/**
	 * 账户号码
	 */
	@Excel(name = "账户号码")
	@ApiModelProperty("账户号码")
	private String accountNo;


	/**
	 * 备注
	 */
	@Excel(name = "备注")
	@ApiModelProperty("备注")
	private String remarks;

	/** 交易类型：0：现金，1：银行 */
//	@Excel(name = "交易类型：0：现金，1：银行")
	@ApiModelProperty("交易类型：0：现金，1：银行")
	private Integer transactionType;


	/** 发送时间 */
//	@Excel(name = "发送时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("发送时间")
	private Date updateTime;

	/** 审核状态 0：未审核；1：审核（默认） */
//	@Excel(name = "审核状态 0：未审核；1：审核" , readConverterExp = "默=认")
	@ApiModelProperty("审核状态 0：未审核；1：审核（默认）")
	private Boolean auditStatus;
}
